classdef CeldasClass
     properties (SetObservable)
        wp;
        qp;
        g;
        wz;
        
        tipodecelda;
        %1. Sallen-Key Pasabajos (G>1)
        %2. Sallen-Key Pasabajos Unitaria (G=1)
        %3. Sallen-Key Pasabajos Modificada (G<1)
        %4. Sallen-Key Pasaaltos (G>1)
        %5. Sallen-Key Pasaaltos ganunit (G=1)
        
        %6. Rauch Pasabajos
        %7. Rauch Pasaaltos
        %8. Rauch Pasabanda
        
        %9. Fleischer-Tow Universal Rechaza
        
        %10. Sedra Pasaaltos
        %11. Sedra Pasabajos
        
        %12. Orden1 Pasabajos
        %13. Orden1 Pasaaltos
        
        %14. Fleischer-Tow Universal Pasa Bajos
        %15. Fleischer-Tow Universal Pasa Altos
        %16. Fleischer-Tow Universal Pasa Banda
        
        %17. Doble T Pasa Bajos
        %18. HP 1 NO INV
        %19. LP 1 NO INV
        nres;
        ncap;
        R;
        C;
        sens;
        setR;
        setC;
        
    end
    
    properties
    
    end
    
    
    methods
        function self = CeldasClass(tipodecelda,wp,qp,g,wz) 
            
            self.tipodecelda=tipodecelda;
            self.wp=wp;
            self.qp=qp;
            self.g=g;
            self.wz=wz;
            
            
            switch self.tipodecelda
                case 0
                    
                case 1 % Sallen-Key Pasabajos (G>1)
                    self.setR(1)=1;
                    self.setR(2)=3;
                    self.setC=[];
                    seteados=[10e3,1e3];%R1,R3
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 2 % Sallen-Key Pasabajos Unitaria (G=1)
                    self.setR(1)=1;
                    self.setC=[];
                    seteados=10e3; %R1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 3 % Sallen-Key Pasabajos Modificada (G<1)
                    self.setR(1)=1;
                    self.setR(2)=3;
                    self.setR(3)=4;
                    self.setC=[];
                    seteados=[50e3 10e3 10e3]; %R1 %R3 %R4
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 4 % Sallen-Key Pasaaltos (G>1)
                    self.setR(1)=1;
                    self.setR(2)=3;
                    self.setC=[];
                    seteados=[50e3 10e3]; %R1 %R3
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                       
                case 5 % Sallen-Key Pasaaltos (G=1)
                    self.setR(1)=1;
                    self.setC=[];
                    seteados=[50e3]; %R1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    self.nres=length(self.R);
                    self.ncap=length(self.C);     
                    
                    
                    
                    
                    
                case 6 % Rauch Pasabajos
                    self.setR(1)=1;
                    self.setR(2)=2;
                    self.setC=[];
                    seteados=[100e3 100e3];%R1,R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 7 % Rauch Pasaaltos
                    self.setR(1)=1;
                    self.setC(1)=1;
                    seteados=[10e3 1e-9];%R1,C1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 8 % Rauch PasaBanda
                    self.setR(1)=1;
                    self.setC=[];
                    seteados=[10e3];%R1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                    
                case 9 % Fleischer-Tow Universal Rechaza
                    self.setR(1)=1;
                    self.setR(2)=3;
                    self.setR(3)=4;
                    self.setR(4)=7;
                    self.setR(5)=8;
                    self.setC=[];
                    seteados=[10e3 10e3 10e3 10e3 10e3];%R1,R3,R4,R7,R8
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                case 10 % Sedra Pasa Altos
                    self.setR(1)=4;
                    self.setC(1)=1;
                    seteados=[10e3,10e-9];%R4,C1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                    
                case 11 % Sedra Pasa Bajos
                    self.setR(1)=4;
                    self.setC(1)=1;
                    seteados=[1e3,100e-9];%R4,C1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                case 12 % Orden 1 Pasa Bajos
                    self.setR(1)=2;
                    self.setC=[];
                    seteados=[50e3];%R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 13 % Orden 1 Pasa Altos
                    self.setR(1)=2;
                    self.setC=[];
                    seteados=[50e3];%R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 14 % Fleischer-Tow Universal Pasa Bajos
                    self.setR(1)=1;
                    self.setR(2)=3;
                    self.setC=[];
                    seteados=[10e3 10e3];%R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                case 15 % Fleischer-Tow Universal Pasa Altos
                    self.setR(1)=1;
                    self.setR(2)=4;
                    self.setC=[];
                    seteados=[10e3 10e3];%R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 16 % Fleischer-Tow Universal Pasa Banda
                    self.setR(1)=1;
                    self.setR(2)=4;
                    self.setC=[];
                    seteados=[10e3 10e3];%R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                    
                case 17 % Doble T Pasa Bajos
                    self.setR(1)=1;
                    self.setR(2)=5;
                    self.setC=[];
                    seteados=[10e3 10e3];%R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                 case 18 %18. HP 1 NO INV
                    self.setR(1)=1;
                    self.setR(2)=3;
                    self.setC=[];
                    seteados=[1e3 10e3];%R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                 case 19 %19. LP 1 NO INV
                    self.setR(1)=1;
                    self.setR(2)=3;
                    self.setC=[];
                    seteados=[1e3 10e3];%R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                            
            end
            
               
            
            
            
        end
        
        function [R,C,sens]=generocelda(self,varargin,seteados)
            
            switch self.tipodecelda 
                case 1 % Sallen-Key Pasabajos (G>1)
                    [R,C,sens]=celdas_skgmay1(self.wp,self.qp,self.g,self.wz,seteados);
                    
                case 2 % Sallen-Key Pasabajos Unitaria (G=1)
                    [R,C,sens]=celdas_skgigu1(self.wp,self.qp,self.g,self.wz,seteados);
                    
                case 3 % Sallen-Key Pasabajos Modificada (G<1)
                    [R,C,sens]=celdas_skgmen1(self.wp,self.qp,self.g,self.wz,seteados);    
                    
                    
                case 4 % Sallen-Key Pasaaltos (G>1)
                    [R,C,sens]=celdas_skhpgmay1(self.wp,self.qp,self.g,self.wz,seteados);    
                    
                    
                case 5 % Sallen-Key Pasaaltos ganunit (G=1)
                    [R,C,sens]=celdas_skhpgigu1(self.wp,self.qp,self.g,self.wz,seteados);    
                    
                    
                    
                case 6 % Rauch Pasabajos
                    [R,C,sens]=celdas_rchlp(self.wp,self.qp,self.g,self.wz,seteados);
                
                case 7 % Rauch Pasaaltos
                    [R,C,sens]=celdas_rchhp(self.wp,self.qp,self.g,self.wz,seteados);
                    
                case 8 % Rauch Pasabanda
                    [R,C,sens]=celdas_rchbp(self.wp,self.qp,self.g,self.wz,seteados);
                    
                    
                case 9 % Fleischer-Tow Universal Rechaza
                    [R,C,sens]=celdas_flrtwbr(self.wp,self.qp,self.g,self.wz,seteados);
                
                case 10 % Sedra Pasa Altos
                    [R,C,sens]=celdas_sedrahp(self.wp,self.qp,self.g,self.wz,seteados);
            
                case 11 % Sedra Pasa Altos
                    [R,C,sens]=celdas_sedralp(self.wp,self.qp,self.g,self.wz,seteados);
                    
                
                
                case 12 % Orden1 Pasa Bajos
                    [R,C,sens]=celdas_LP1inv(self.wp,self.qp,self.g,self.wz,seteados);
               
                case 13 % Orden1 Pasa Altos
                    [R,C,sens]=celdas_HP1inv(self.wp,self.qp,self.g,self.wz,seteados);
                
                case 14 % Fleischer-Tow Universal Pasa Bajos
                    [R,C,sens]=celdas_flrtwlp(self.wp,self.qp,self.g,self.wz,seteados);
                case 15 % Fleischer-Tow Universal Pasa Altos
                    [R,C,sens]=celdas_flrtwhp(self.wp,self.qp,self.g,self.wz,seteados);
                case 16 % Fleischer-Tow Universal Pasa Banda
                    [R,C,sens]=celdas_flrtwbp(self.wp,self.qp,self.g,self.wz,seteados);
            
                    
               case 17 % Doble T Pasa Bajos
                    [R,C,sens]=celdas_dobleTLP(self.wp,self.qp,self.g,self.wz,seteados);  
                    
                    
               case 18 % HP1NOINV
                    [R,C,sens]=celdas_HP1noinv(self.wp,self.qp,self.g,self.wz,seteados);  
                    
               case 19 % LP1NOINV
                    [R,C,sens]=celdas_LP1noinv(self.wp,self.qp,self.g,self.wz,seteados);  
                    
            end
            
        end
        
        
        
        
        
        
    end
    

    
end